/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package model;

import abstractmodel.InfoValue;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 *
 * @author fightfxj
 */
public class BookInfo implements abstractmodel.IInfo {
    
    private String bookName;       // 账簿名称 不超过20 个字节的字符串，中英文均可，缺省为“账簿”
    private String creatTimeString;  //字符串类型的创建时间
    private DateFormat creatTime;  //创建时间  由软件通过系统时间自动赋值，不可修改。创建账簿时会给用户显示出来。
    private String notes;        //备注 不超过200 个字符的字符串，中英文均可，缺省为空
    public static String[] titles = new String[]{"账簿名称", "创建时间", "备注"};
    private int id;

    public BookInfo() {
        bookName = new String("账簿");
        creatTime = DateFormat.getDateTimeInstance();
        // 修改了创建时间，通过当前时间来初始化，精确到分钟，不按照yyyy-MM-dd的形式
        Date dateNow = new Date();
        creatTime.getCalendar().setTime(dateNow);
        creatTimeString = new SimpleDateFormat().format(dateNow);
        notes = new String();
    }

    public String getBookName() {
        return bookName;
    }

    public String getCreatTimeString() {
        return creatTimeString;
    }

    public DateFormat getCreatTime() {
        return creatTime;
    }

    public String getNotes() {
        return notes;
    }

    @Override
    public String[] getTitles() {
        return BookInfo.titles;
    }

    @Override
    public InfoValue getValue(String title) {
        InfoValue iv = new InfoValue();
        if (title.equals("账簿名称")) {
            iv.setObj(this.bookName);
            iv.setType(String.class);
        }
        else if (title.equals("创建时间")) {
            iv.setObj(this.getCreatTimeString());
            iv.setType(String.class);
        }
        else if (title.equals("备注")) {
            iv.setObj(this.notes);
            iv.setType(String.class);
        }
        else if (title.equalsIgnoreCase("id")) {
            iv.setObj(new Integer(this.id).toString());
            iv.setType(String.class);          
        }
        return iv;
    }

    @Override
    public boolean setValue(String title, Object value) {
        if (title.equals("账簿名称")) {
            this.bookName = value.toString();
        }
        else if (title.equals("备注")) {
            this.notes = value.toString();
        }
        else 
            return false;   //创建时间不能进行修改
        return true;
    }

    @Override
    public int getid() {
        return this.id;
    }

    @Override
    public void setId(int id) {
        this.id = id;
    }

    @Override
    public int getType() {
        return configure.Global.BOOK_INFO_TYPE;
    }

}
